The invention generally relates to scheduling jobs for execution on a computer system.
Jobs may be scheduled for execution on a computer system for purposes of performing a particular operation. There may be alternative ways to perform the operation, each comprised of a set of jobs, and as such, there are many possible ways that jobs may be selected and scheduled to perform the operation. The selection and scheduling of the jobs typically are constrained by the resources of the computer system, and as such, the scheduling dilemma may be referred to as “multi-alternative resource constrained project scheduling.”
As an example, multi-alternative resource constrained project scheduling may arise in connection with scheduling jobs for a data recovery operation. More specifically, application workloads of a computer system may be subject to a permanent or temporary data outage due to an array failure or site failure. When such a failure occurs, jobs typically are scheduled on the computer system for purposes of recovering the datasets for these workloads. Due to the relatively limited and shared resources of the system, all of the data recovery jobs typically cannot proceed concurrently, but rather, the data recovery jobs typically are scheduled according to the priorities of the workloads. Furthermore, the different options that are available for recovering a particular dataset may also be taken into account. For example, one option for recovering a dataset may involve failing over to a replica dataset at a remote site, and another recovery option may involve reconstructing the dataset from a local backup. Poor scheduling decisions for the recovery process may result in relatively significant costs and productivity losses.